<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //ES6中提供了新的数据结构Set，类似于数组，但是成员的值都是唯一的，没有重复的值
        // set通过new的方式进行创建，Set是一个构造函数
        var set=new Set();
        console.log(set);

        //Set构造函数会自动将传入的数据转换为集合
        var arr=[1,2,3,4,5,1,3];

        // 1.去重，set集合在元素构成中，必须保证每个元素都是唯一的
        var set2=new Set(arr);

        //将set类型数据转换成数组类型
        var a=Array.from(set2);
        console.log(a);


        // 2.set内置方法
        // size:返回Set实例的成员总数
        // add(value):添加某个值，返回Set结构本身
        // delete(value):删除某个值，返回一个布尔值，表示删除是否成功
        // has(value):返回一个布尔值，表示该值是否为Set的成员
        // clear():清除所有成员，没有返回值
        var set3=new Set();
        set3.add("alice");
        set3.add("tom");
        set3.add("lucy");
        set3.add("lucy");
        set3.add([1,2,3]);
        set3.add([1,2,3]);
        var user={username:"alice"};
        set3.add(user);
        set3.add(user);
        
        console.log(set3.size);//元素的数量
        console.log(set3.delete("tom"));//删除元素，返回布尔值
        console.log(set3.has([1,2,3]));//false
        console.log(set3.has(user));//true
        set3.clear();
        console.log(set3);

    </script>
</head>
<body>
    
</body>
</html>